package com.xwaiy.xwaiyrpc.protocol;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.checkerframework.checker.units.qual.A;

/**
 * 协议消息结构
 * @Author Xwaiy
 * @Date 2025/8/27 17:14
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProtocolMessage<T> {

    // 头
    private Header header;

    // 消息体
    private T body;

    @Data
    public static class Header {

        private byte magic;

        // 版本号
        private byte version;

        // 序列化器
        private byte serializer;

        // 消息类型（请求 / 响应）
        private byte type;

        // 状态
        private byte status;

        //  请求 id
        private long requestId;

        // 消息体长度
        private int bodyLength;

    }
}
